<%@ Page Language="VB" Inherits="CMS" MasterPageFile="~/admin/admin.master" Title="Content Links" %>

<%@ Import Namespace="System.Data.OLEDB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.IO" %>
<script runat="server">
    
    ' Version:      07.06.2007 /DH  Interne und externe Links aufgeteilt.
    Dim SortField As String
    
    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        If Not Roles.IsUserInRole("admin") Then
            Response.Redirect("~/login.aspx")
        End If
        Dim newlink As Integer = Request.QueryString("newlink")
        If newlink = 1 Then
            'interne Link eintragen
            Dim strCNR As Integer = DropDownList1.SelectedItem.Value
            Dim strLinktext As String = txtLinktexte.Text.Trim
            Dim strLinkurl As String = ""
            
            
            'Linkurl von table_pages holen
            strLinkurl = GetLinkUrl(strCNR)
        
            tbPagesZusatz.Insert(cnr:=strCNR, _
                                 linktexte:=strLinktext, _
                                 linkurl:=strLinkurl, _
                                 spaces:=strLinktext.Split(" ").Length - 1)
            BindGrid()
            Response.Redirect("content_links.aspx")
        End If
        
        If newlink = 2 Then
            'externen Link eintragen
            Dim strCNR As Integer = DropDownList1.SelectedItem.Value
            Dim strLinktext As String = Me.txtLinktextExtern.Text.Trim
            Dim strLinkurl As String = txtLinkUrlExtern.Text.Trim
            
            ' Es wird eine Linktext eingetragen der auf eine externe Seite linkt.
            Label1.Visible = "True"
            Label1.Text = "Bitte w&auml;hlen Sie eine Seite aus!"
            
            tbPagesZusatz.Insert(cnr:=strCNR, _
                                 linktexte:=strLinktext, _
                                 linkurl:=strLinkurl, _
                                 spaces:=strLinktext.Split(" ").Length - 1)
            BindGrid()
            Response.Redirect("content_links.aspx")
        End If
        
        Dim deleteid As Integer = Request.QueryString("deleteid")
        If deleteid > 0 Then
            'If MsgBox("Wollen Sie den Datensatz wirklich löschen?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
            tbPagesZusatz.Delete(deleteid)
            BindGrid()
            'End If
        End If
        
        If Not IsPostBack() Then
            If SortField = "" Then
                SortField = "CNR"
            End If
            BindGrid()
            BindGridDropdown()
        End If
    End Sub
    
    Sub BindGrid()
        Dim p As String = "tbl_pages.cnr, tbl_pages.metadescription, tbl_pages.metakeywords, tbl_pages.titel, tbl_pages.linktext, tbl_pages.linkurl"
        Dim pz As String = "tbl_pages_zusatz.linktexte, tbl_pages_zusatz.lnr, tbl_pages_zusatz.spaces, tbl_pages_zusatz.linkurl"
        MyDataGrid.DataSource = tbPages.GetDataSetZusatz(p, pz).Tables(0).DefaultView
        MyDataGrid.DataBind()
        MyDataGridext.DataSource = tbPagesZusatz.GetDataSet(strWhere:="CNr = 0", strOrder:="LNr").Tables(0).DefaultView
        MyDataGridext.DataBind()
    End Sub
    Sub BindGridDropdown()
        DropDownList1.DataSource = tbPages.GetDataSet(, "pagetyp = 'Artikel'").Tables(0).DefaultView
        DropDownList1.DataValueField = "CNR"
        DropDownList1.DataTextField = "LinkText"
        DropDownList1.DataBind()
    End Sub
    
    Sub MyDataGrid_Page(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs)
        MyDataGrid.CurrentPageIndex = e.NewPageIndex
        BindGrid()
    End Sub
    
    Sub MyDataGrid_Edit(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
        MyDataGrid.EditItemIndex = e.Item.ItemIndex
        
        BindGrid()
    End Sub

    Sub MyDataGrid_Cancel(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
        MyDataGrid.EditItemIndex = -1
        BindGrid()
    End Sub

    Sub MyDataGrid_Update(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
        ' For bound columns the edited value is stored in a textbox,
        ' and the textbox is the 0th element in the column's cell
        
        Dim linktextText As TextBox = e.Item.Cells(8).Controls(0)
        Dim linktextUrl As TextBox = e.Item.Cells(7).Controls(0)
        Dim lnr As String = e.Item.Cells(1).Text
       
        Dim linktext As String = linktextText.Text
        Dim linkUrl As String = linktextUrl.Text
       
        tbPagesZusatz.Update(lnr, linkurl:=linkUrl, linktexte:=linktext, spaces:=linktext.Split(" ").Length - 1)

        MyDataGrid.EditItemIndex = -1
        BindGrid()
        Response.Redirect("content_links.aspx")
    End Sub
    
    Sub MyDataGrid_Sort(ByVal sender As Object, ByVal e As DataGridSortCommandEventArgs)
        SortField = e.SortExpression
        lblSortierung.Text = SortField
        BindGrid()
    End Sub
    
    Sub BtnMetades(ByVal sender As Object, ByVal e As EventArgs)

        MyDataGrid.Columns(3).Visible = Not MyDataGrid.Columns(3).Visible
        MyDataGrid.Columns(4).Visible = Not MyDataGrid.Columns(4).Visible
        'Label1.Text = "Column 1's visible property is set to " & MyDataGrid.Columns(1).Visible.ToString

    End Sub
    Sub onChangeDD(sender As Object, e As EventArgs)
    
    End Sub
</script>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h3 class="panel-title">
                <asp:Label ID="lbltitelintern" runat="server" Text="Add internal links"></asp:Label></h3>
        </div>
        <div class="panel-body">
            <div class="row">
                <div class="col-md-3">
                    <asp:DropDownList ID="DropDownList1" CssClass="btn btn-default" runat="server" AppendDataBoundItems="True" OnTextChanged="onChangeDD">
                        <asp:ListItem Selected="True" Value="0">Choose</asp:ListItem>
                    </asp:DropDownList>
                </div>
                <div class="col-md-3">
                    <asp:TextBox ID="txtLinktexte" CssClass="form-control" runat="server">Link text</asp:TextBox>

                </div>
                <div class="col-md-3">
                    <asp:Button ID="Button3" CssClass="btn btn-default" Text="Add" PostBackUrl="content_links.aspx?newlink=1" runat="server" />

                </div>
                <div class="col-md-3">
                    <asp:Label ID="Label1" runat="server" Text="Label" Visible="False"></asp:Label><br />

                </div>
            </div>
        </div>

    </div>
    <div class="panel panel-success">
        <div class="panel-heading">
            <h3 class="panel-title">
                <asp:Label ID="lblinks" runat="server" Text="Internal links"></asp:Label>
            </h3>
        </div>
        <div class="panel-body">
            <asp:DataGrid ID="MyDataGrid" runat="server"
                AllowPaging="True"
                PageSize="50"
                PagerStyle-Mode="NumericPages"
                PagerStyle-NextPageText="Next"
                PagerStyle-PrevPageText="Prev"
                OnPageIndexChanged="MyDataGrid_Page"
                CssClass="table table-hover"
                OnEditCommand="MyDataGrid_Edit"
                OnCancelCommand="MyDataGrid_Cancel"
                OnUpdateCommand="MyDataGrid_Update"
                AutoGenerateColumns="false"
                AllowSorting="true"
                OnSortCommand="MyDataGrid_Sort">

                <Columns>
                    <asp:EditCommandColumn
                        EditText="Edit"
                        CancelText="Cancel"
                        UpdateText="Update"
                        HeaderText="Edit">
                        <ItemStyle Wrap="False" />
                        <HeaderStyle Wrap="False" />
                    </asp:EditCommandColumn>
                    <asp:BoundColumn HeaderText="LNR" SortExpression="LNR" ReadOnly="True" DataField="LNR" />
                    <asp:BoundColumn HeaderText="CNR" SortExpression="CNR" ReadOnly="True" DataField="CNR" />
                    <asp:BoundColumn HeaderText="Metakeywords" ReadOnly="True" Visible="False" SortExpression="metakeywords" DataField="metakeywords" />
                    <asp:BoundColumn HeaderText="Metadescription" ReadOnly="True" Visible="False" SortExpression="metadescription" DataField="metadescription" />
                    <asp:BoundColumn HeaderText="Title" ReadOnly="True" SortExpression="Titel" DataField="Titel" />
                    <asp:BoundColumn HeaderText="Page" ReadOnly="True" Visible="false" SortExpression="linktext" DataField="linktext" />
                    <asp:BoundColumn HeaderText="Linkurl" Visible="false" SortExpression="linkurl" DataField="tbl_pages.linkurl" />
                    <asp:BoundColumn HeaderText="Link Url" SortExpression="linkurl" DataField="tbl_pages_zusatz.linkurl" />
                    <asp:BoundColumn HeaderText="Link text" SortExpression="Linktexte" DataField="linktexte" />
                    <asp:BoundColumn HeaderText="Spaces" ReadOnly="True" SortExpression="spaces" DataField="spaces" />
                    <asp:HyperLinkColumn
                        HeaderText="Delete"
                        DataNavigateUrlField="LNR"
                        DataNavigateUrlFormatString="content_links.aspx?deleteid={0}"
                        Text="&lt;span class='glyphicon glyphicon-remove-circle'&gt;&lt;/span&gt;" />
                </Columns>
                <PagerStyle Mode="NumericPages" NextPageText="Next" PrevPageText="Prev" />
            </asp:DataGrid>
        </div>
        <div class="panel-footer">
            <asp:Button ID="Button1" CssClass="btn btn-default" Text="Show metadata" OnClick="BtnMetades" runat="server" /></div>
        <asp:Label ID="lblSortierung" Font-Size="XX-Small" runat="server" Text=""></asp:Label>
    </div>
    <div class="panel panel-default">
        <div class="panel-heading">
            <h3 class="panel-title">
                <asp:Label ID="Lbltitelextern" runat="server" Text="Add external link"></asp:Label></h3>
        </div>
        <div class="panel-body">
            <div class="row">
                <div class="col-md-3">
                    <asp:TextBox ID="txtLinkUrlExtern" CssClass="form-control" runat="server">http://</asp:TextBox>
                </div>
                <div class="col-md-3">
                    <asp:TextBox ID="txtLinktextExtern" CssClass="form-control" runat="server">Link text</asp:TextBox>
                </div>
                <div class="col-md-3">
                    <asp:Button ID="Button2" CssClass="btn btn-default" Text="Add" PostBackUrl="content_links.aspx?newlink=2" runat="server" />
                </div>
                <div class="col-md-3">
                    <asp:Label ID="Label2" runat="server" Text="Label" Visible="False"></asp:Label>
                </div>
            </div>
        </div>
    </div>
    <div class="panel panel-success">
        <div class="panel-heading">
            <h3 class="panel-title">
                <asp:Label ID="Label3" runat="server" Text="External links"></asp:Label>
            </h3>
        </div>
        <div class="panel-body">
            <asp:DataGrid ID="MyDataGridext" runat="server"
                AllowPaging="True"
                PageSize="50"
                PagerStyle-Mode="NumericPages"
                PagerStyle-NextPageText="Next"
                PagerStyle-PrevPageText="Prev"
                OnPageIndexChanged="MyDataGrid_Page"
                OnEditCommand="MyDataGrid_Edit"
                OnCancelCommand="MyDataGrid_Cancel"
                OnUpdateCommand="MyDataGrid_Update"
                AutoGenerateColumns="false"
                AllowSorting="true"
                CssClass="table table-hover"
                OnSortCommand="MyDataGrid_Sort">

                <Columns>
                    <asp:EditCommandColumn
                        EditText="Edit"
                        CancelText="Cancel"
                        UpdateText="Update"
                        ItemStyle-Wrap="false"
                        HeaderText="Edit"
                        HeaderStyle-Wrap="false" />
                    <asp:BoundColumn HeaderText="Link Url" SortExpression="linkurl" DataField="linkurl" />
                    <asp:BoundColumn HeaderText="Link text" SortExpression="Linktexte" DataField="linktexte" />
                    <asp:BoundColumn HeaderText="Spaces" ReadOnly="true" SortExpression="spaces" DataField="spaces" />
                    <asp:HyperLinkColumn
                        HeaderText="Delete"
                        DataNavigateUrlField="LNR"
                        DataNavigateUrlFormatString="content_links.aspx?deleteid={0}"
                        Text="&lt;span class='glyphicon glyphicon-remove-circle'&gt;&lt;/span&gt;" />
                </Columns>
            </asp:DataGrid>
        </div>

    </div>
    <div class="panel panel-default">
        <div class="panel-body">
            Was sind Content Links?<br />
            <br />
            Nehmen Sie an, Ihre Seite enth&auml;lt folgenden Text:&nbsp; "Willkommen auf unsere Homepage.
                    Wir sind spezialisiert auf den Verkauf von Computer und Monitore. Unser Partner
                    ist XYFirma."<br />
            <br />
            Nun m&ouml;chten Sie, dass in diesem Text die W&ouml;rter Computer, Monitore und XYFirma auf
                    eine gewisse Seite verweisen, die n&auml;here Informationen enthalten.<br />
            Sie m&ouml;chten dass das Wort Computer auf die Seite computer-3.aspx verweist, das Wort
                    Monitor auf die Seite monitor-45.aspx verweist und das Wort XYFirma auf die Seite
                    http://www.xyfirma.com verweist. Genau das wird mit diesem Modul erreicht.<br />
            <br />
            Internen Link setzen:<br />
            W&auml;hle Sie aus dem Dropdown Feld ein Seite von Ihrer Website aus. Tragen Sie nun
                    einen gew&uuml;nschten Linktext ein.
                    <br />
            <br />
            Externen Link setzen:<br />
            Geben Sie in das Feld "externe Link" die URL (z.b. http://www.mastercms.net) ein,
                    auf die Sie verweisen m&ouml;chten. Tragen Sie nun einen gew&uuml;nschten Linktext (z.b. CMS)
                    ein.<br />
            <br />
            Damit die Links nun auch gesetzt werden, m&uuml;ssen Sie zur&uuml;ck zu der Seitenansicht
                    list.aspx gehen, dort Seiten ausw&auml;hlen und den Befehl "Link setzen" ausw&auml;hlen. Bei
                    allen ausgew&auml;hlten Seiten, wird nun durchsucht, ob der eingegebene Linktext vorhanden
                    ist und bei vorhanden sein, wird der Link gesetzt.
        </div>
    </div>

</asp:Content>

